home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 February: Tool Chest / Apple Developer CD Series Tool Chest February 1996 (Apple Computer)(1996).iso / Tool Chest / Networking / MacTCP / MPing 1.1 / Sources / MPing.r < prev    next >
Encoding:
Text File  |  1991-09-30  |  20.4 KB  |  790 lines  |  [TEXT/MPS ]

  1. /*------------------------------------------------------------------------------
  2. #    MPing 1.1 - MacTCP Ping Tool
  3. #
  4. #    Copyright © Apple Computer, Inc. 1990-1991
  5. #    All rights reserved.
  6. #
  7. #    Versions:    
  8. #                1.1        September 25, 1991.
  9. #
  10. #    File:
  11. #                MPing.c
  12. #
  13. #    Components:
  14. #                AddressXlation.h
  15. #                MacTCPCommonTypes.h
  16. #                Makefile
  17. #                MiscIPPB.h
  18. #                MPing.c
  19. #                MPing.h
  20. #                MPing.r
  21. #                MPingDlg.c
  22. #                MPingExtern.h
  23. #                MPingGlobals.h
  24. #                MPingIcmp.c
  25. #                MPingWindow.c
  26. #                resolver.c
  27. ------------------------------------------------------------------------------*/
  28.  
  29. #include "SysTypes.r"
  30. #include "Types.r"
  31.  
  32. #include "MPing.h"
  33.  
  34. resource 'BNDL' (128) {
  35.     'mPng',
  36.     0,
  37.     {    /* array TypeArray: 2 elements */
  38.         /* [1] */
  39.         'FREF',
  40.         {    /* array IDArray: 1 elements */
  41.             /* [1] */
  42.             0, 128
  43.         },
  44.         /* [2] */
  45.         'ICN#',
  46.         {    /* array IDArray: 1 elements */
  47.             /* [1] */
  48.             0, 128
  49.         }
  50.     }
  51. };
  52.  
  53. resource 'FREF' (128) {
  54.     'APPL',
  55.     0,
  56.     ""
  57. };
  58.  
  59. resource 'vers' (1) {
  60.     0x02, 0x00, release, 0x00,
  61.     verUS,
  62.     "1.1",
  63.     "1.1, Copyright \251 Apple Computer, Inc. 1990-1991."
  64. };
  65.  
  66. /* this is a definition for a resource which contains only a rectangle */
  67.  
  68. type 'RECT' {
  69.     rect;
  70. };
  71.  
  72. /* we use an MBAR resource to conveniently load all the menus */
  73.  
  74. resource 'MBAR' (rMenuBar, preload) {
  75.     { mApple, mFile, mEdit, mIPOptions };    /* four menus */
  76. };
  77.  
  78. resource 'MENU' (mApple, preload) {
  79.     mApple, textMenuProc,
  80.     AllItems & ~MenuItem2,    /* Disable dashed line, enable About and DAs */
  81.     enabled, apple,
  82.     {
  83.         "About MPing…",
  84.             noicon, nokey, nomark, plain;
  85.         "-",
  86.             noicon, nokey, nomark, plain
  87.     }
  88. };
  89.  
  90. resource 'MENU' (mFile, preload) {
  91.     mFile, textMenuProc,
  92.     MenuItem12,                /* enable Quit only, program enables others */
  93.     enabled, "File",
  94.     {
  95.         "New",
  96.             noicon, "N", nomark, plain;
  97.         "Open",
  98.             noicon, "O", nomark, plain;
  99.         "-",
  100.             noicon, nokey, nomark, plain;
  101.         "Close",
  102.             noicon, "W", nomark, plain;
  103.         "Save",
  104.             noicon, "S", nomark, plain;
  105.         "Save As…",
  106.             noicon, nokey, nomark, plain;
  107.         "Revert",
  108.             noicon, nokey, nomark, plain;
  109.         "-",
  110.             noicon, nokey, nomark, plain;
  111.         "Page Setup…",
  112.             noicon, nokey, nomark, plain;
  113.         "Print…",
  114.             noicon, nokey, nomark, plain;
  115.         "-",
  116.             noicon, nokey, nomark, plain;
  117.         "Quit",
  118.             noicon, "Q", nomark, plain
  119.     }
  120. };
  121.  
  122. resource 'MENU' (mEdit, preload) {
  123.     mEdit, textMenuProc,
  124.     NoItems,                /* disable everything, program does the enabling */
  125.     enabled, "Edit",
  126.      {
  127.         "Undo",
  128.             noicon, "Z", nomark, plain;
  129.         "-",
  130.             noicon, nokey, nomark, plain;
  131.         "Cut",
  132.             noicon, "X", nomark, plain;
  133.         "Copy",
  134.             noicon, "C", nomark, plain;
  135.         "Paste",
  136.             noicon, "V", nomark, plain;
  137.         "Clear",
  138.             noicon, nokey, nomark, plain
  139.     }
  140. };
  141.  
  142. resource 'MENU' (mIPOptions, preload) {
  143.     mIPOptions, textMenuProc,
  144.     NoItems,                /* disable everything, program does the enabling */
  145.     enabled, "IP Options",
  146.      {
  147.         "Record Route",
  148.             noicon, nokey, nomark, plain;
  149.         "Loose Source RR",
  150.             noicon, nokey, nomark, plain;
  151.         "Strict Source RR",
  152.             noicon, nokey, nomark, plain;
  153.         "TimeStamp",
  154.             noicon, nokey, nomark, plain;
  155.         "Security",
  156.             noicon, nokey, nomark, plain;
  157.         "Stream Identifier",
  158.             noicon, nokey, nomark, plain
  159.     }
  160. };
  161.  
  162. /* this ALRT and DITL are used as an About screen */
  163.  
  164. resource 'ALRT' (rAboutAlert, purgeable) {
  165.     {40, 20, 144, 300},
  166.     rAboutAlert,
  167.     { /* array: 4 elements */
  168.         /* [1] */
  169.         OK, visible, silent,
  170.         /* [2] */
  171.         OK, visible, silent,
  172.         /* [3] */
  173.         OK, visible, silent,
  174.         /* [4] */
  175.         OK, visible, silent
  176.     }
  177. };
  178.  
  179. resource 'DITL' (rAboutAlert, purgeable) {
  180.     { /* array DITLarray: 6 elements */
  181.         /* [1] */
  182.         {74, 185, 94, 265},
  183.         Button {
  184.             enabled,
  185.             "OK"
  186.         },
  187.         /* [2] */
  188.         {8, 8, 24, 214},
  189.         StaticText {
  190.             disabled,
  191.             "MPing 1.1 - MacTCP Ping Tool"
  192.         },
  193.         /* [3] */
  194.         {32, 8, 48, 296},
  195.         StaticText {
  196.             disabled,
  197.             "Copyright © Apple Computer 1990-1991"
  198.         },
  199.         /* [4] */
  200.         {56, 8, 72, 136},
  201.         StaticText {
  202.             disabled,
  203.             "Brought to you by:"
  204.         },
  205.         /* [5] */
  206.         {80, 16, 96, 167},
  207.         StaticText {
  208.             disabled,
  209.             "Rajesh Bhatawadekar"
  210.         },
  211.         /* [6] */
  212.         {0, 0, 0, 0},
  213.         HelpItem {
  214.             disabled,
  215.             HMScanhdlg {
  216.                 -2999
  217.             }
  218.         }
  219.     }
  220. };
  221.  
  222. /* this ALRT and DITL are used as an error screen */
  223.  
  224. resource 'ALRT' (rUserAlert, purgeable) {
  225.     {40, 20, 140, 280},
  226.     rUserAlert,
  227.     { /* array: 4 elements */
  228.         /* [1] */
  229.         OK, visible, silent,
  230.         /* [2] */
  231.         OK, visible, silent,
  232.         /* [3] */
  233.         OK, visible, silent,
  234.         /* [4] */
  235.         OK, visible, silent
  236.     }
  237. };
  238.  
  239. resource 'DITL' (rUserAlert, purgeable) {
  240.     { /* array DITLarray: 3 elements */
  241.         /* [1] */
  242.         {70, 165, 90, 250},
  243.         Button {
  244.             enabled,
  245.             "OK"
  246.         },
  247.         /* [2] */
  248.         {10, 50, 60, 240},
  249.         StaticText {
  250.             disabled,
  251.             "MPing Error: ^0."
  252.         },
  253.         /* [3] */
  254.         {8, 8, 40, 40},
  255.         Icon {
  256.             disabled,
  257.             2
  258.         }
  259.     }
  260. };
  261.  
  262. resource 'CNTL' (rVScroll, preload, purgeable) {
  263.     {160, 395, 265, 410},
  264.     0, visible, 0, 0, scrollBarProc, 0, ""
  265. };
  266.  
  267. resource 'RECT' (rMsgRect, preload, purgeable) {
  268.     {160, 20, 265, 410}
  269. };
  270.  
  271. resource 'DLOG' (rDialog, purgeable) {
  272.     {40, 40, 340, 470},
  273.     rDocProc,
  274.     invisible,
  275.     noGoAway,
  276.     0x0,
  277.     rDialog,
  278.     "ICMP information"
  279. };
  280.  
  281. resource 'DITL' (rDialog, purgeable) {
  282.     {    /* array DITLarray: 21 elements */
  283.         /* [1] */
  284.         {275, 60, 290, 135},
  285.         Button {
  286.             enabled,
  287.             "Ping Go"
  288.         },
  289.         /* [2] */
  290.         {275, 185, 290, 260},
  291.         Button {
  292.             enabled,
  293.             "Ping Stop"
  294.         },
  295.         /* [3] */
  296.         {275, 310, 290, 385},
  297.         Button {
  298.             enabled,
  299.             "Quit"
  300.         },
  301.         /* [4] */
  302.         {10, 25, 25, 120},
  303.         StaticText {
  304.             disabled,
  305.             "Host Address"
  306.         },
  307.         /* [5] */
  308.         {10, 135, 25, 375},
  309.         EditText {
  310.             enabled,
  311.             ""
  312.         },
  313.         /* [6] */
  314.         {35, 25, 50, 120},
  315.         RadioButton {
  316.             enabled,
  317.             "Send text"
  318.         },
  319.         /* [7] */
  320.         {35, 135, 50, 375},
  321.         EditText {
  322.             enabled,
  323.             ""
  324.         },
  325.         /* [8] */
  326.         {60, 25, 75, 170},
  327.         RadioButton {
  328.             enabled,
  329.             "Send pattern (Hex)"
  330.         },
  331.         /* [9] */
  332.         {60, 175, 75, 375},
  333.         EditText {
  334.             enabled,
  335.             ""
  336.         },
  337.         /* [10] */
  338.         {85, 25, 100, 120},
  339.         StaticText {
  340.             disabled,
  341.             "Packet Size"
  342.         },
  343.         /* [11] */
  344.         {85, 120, 100, 155},
  345.         EditText {
  346.             enabled,
  347.             ""
  348.         },
  349.         /* [12] */
  350.         {85, 170, 100, 230},
  351.         StaticText {
  352.             disabled,
  353.             "Output :"
  354.         },
  355.         /* [13] */
  356.         {85, 240, 100, 305},
  357.         RadioButton {
  358.             enabled,
  359.             "Quiet"
  360.         },
  361.         /* [14] */
  362.         {85, 310, 100, 385},
  363.         RadioButton {
  364.             enabled,
  365.             "Verbose"
  366.         },
  367.         /* [15] */
  368.         {110, 25, 125, 80},
  369.         CheckBox {
  370.             enabled,
  371.             "Send"
  372.         },
  373.         /* [16] */
  374.         {110, 85, 125, 155},
  375.         EditText {
  376.             enabled,
  377.             ""
  378.         },
  379.         /* [17] */
  380.         {110, 170, 125, 300},
  381.         StaticText {
  382.             disabled,
  383.             "number of packets"
  384.         },
  385.         /* [18] */
  386.         {135, 25, 150, 65},
  387.         StaticText {
  388.             disabled,
  389.             "Wait"
  390.         },
  391.         /* [19] */
  392.         {135, 70, 150, 120},
  393.         EditText {
  394.             enabled,
  395.             ""
  396.         },
  397.         /* [20] */
  398.         {135, 135, 150, 390},
  399.         StaticText {
  400.             disabled,
  401.             "ticks between sending each packet"
  402.         },
  403.         /* [21] */
  404.         {0, 0, 0, 0},
  405.         HelpItem {
  406.             disabled,
  407.             HMScanhdlg {
  408.                 -2997
  409.             }
  410.         }
  411.     }
  412. };
  413.  
  414. /* here is the quintessential MultiFinder friendliness device, the SIZE resource */
  415.  
  416. resource 'SIZE' (-1) {
  417.     dontSaveScreen,
  418.     acceptSuspendResumeEvents,
  419.     enableOptionSwitch,
  420.     canBackground,                /* we can background; we don't currently, but our sleep value */
  421.                                 /* guarantees we don't hog the Mac while we are in the background */
  422.     multiFinderAware,            /* this says we do our own activate/deactivate; don't fake us out */
  423.     backgroundAndForeground,    /* this is definitely not a background-only application! */
  424.     dontGetFrontClicks,            /* change this is if you want "do first click" behavior like the Finder */
  425.     ignoreChildDiedEvents,        /* essentially, I'm not a debugger (sub-launching) */
  426.     not32BitCompatible,            /* this app should not be run in 32-bit address space */
  427.     reserved,
  428.     reserved,
  429.     reserved,
  430.     reserved,
  431.     reserved,
  432.     reserved,
  433.     reserved,
  434.     kPrefSize * 1024,
  435.     kMinSize * 1024    
  436. };
  437.  
  438. resource 'STR#' (rErrorStrings) {
  439.     {
  440.         "**********  MPing Statistics  **********\n";
  441.         "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
  442.         "Packets out/in/bad/%loss = ";
  443.         "Round-trip time (ticks) min/avg/max = ";
  444.         "Cannot open Resolver";
  445.         "Cannot exceed 32,000 characters";
  446.         "You must run on 512Ke or later";
  447.         "Application Memory Size is too small";
  448.         "Cannot create window";
  449.         "Cannot open RECT resource";
  450.         "Cannot create TextEdit record";
  451.         "Cannot open vertical scroll bar control";
  452.         "Cannot open menu resource";
  453.         "Host not responding\n";
  454.         "Recorded Route\n";
  455.         "No routes recorded\n";
  456.         "Minimum value: 1 tick";
  457.         "success: pkt #/round-trip time/pkt length = ";
  458.         "timeout: pkt # = ";
  459.         "Source: ";
  460.         "Destination: "
  461.     };
  462. };
  463.  
  464. resource 'STR#' (-3000, "Balloon Help String 1") {
  465.     {    /* array StringArray: 24 elements */
  466.         /* [1] */
  467.         "Is this cool or what !",
  468.         /* [2] */
  469.         "Click, to start sending ICMP ECHO_REQUES"
  470.         "T packets to destination host.",
  471.         /* [3] */
  472.         "Click, to stop sending ICMP ECHO_REQUEST"
  473.         " packets to destination host.",
  474.         /* [4] */
  475.         "Click, to quit the application.",
  476.         /* [5] */
  477.         "Destination host address to be pinged.",
  478.         /* [6] */
  479.         "Enter destination host address here (nam"
  480.         "e or IP number).",
  481.         /* [7] */
  482.         "Click, to send ASCII string as data.",
  483.         /* [8] */
  484.         "Send ASCII string as data.",
  485.         /* [9] */
  486.         "Enter ASCII data here.",
  487.         /* [10] */
  488.         "Click, to send Hex pattern as data.",
  489.         /* [11] */
  490.         "Send Hex pattern as data.",
  491.         /* [12] */
  492.         "Enter hex pattern here (0-9A-F).",
  493.         /* [13] */
  494.         "Number of bytes to be sent.",
  495.         /* [14] */
  496.         "Enter size here.",
  497.         /* [15] */
  498.         "Show Round-trip times and packet loss st"
  499.         "atistics in the following rectangular ar"
  500.         "ea. (All timings are in ticks.)",
  501.         /* [16] */
  502.         "Click, to show only statistics.",
  503.         /* [17] */
  504.         "Display only statistics.",
  505.         /* [18] */
  506.         "Click, to show error messages.",
  507.         /* [19] */
  508.         "Display error messages.",
  509.         /* [20] */
  510.         "Continue sending ECHO_REQUEST packets un"
  511.         "til user clicks on stop button.",
  512.         /* [21] */
  513.         "Stop after receiving count ECHO_RESPONSE"
  514.         " packets from host.",
  515.         /* [22] */
  516.         "Enter number of packets here.",
  517.         /* [23] */
  518.         "Wait given number of ticks before sendin"
  519.         "g each packet. (1 tick = 1/60th of a sec"
  520.         "ond or approx. 17 milliseconds",
  521.         /* [24] */
  522.         "Enter number of ticks. (Minimum is 1)"
  523.     }
  524. };
  525.  
  526. resource 'acur' (128) {
  527.     {    /* array CursIdArray: 4 elements */
  528.         /* [1] */
  529.         128,
  530.         /* [2] */
  531.         129,
  532.         /* [3] */
  533.         130,
  534.         /* [4] */
  535.         131
  536.     }
  537. };
  538.  
  539. resource 'CURS' (128) {
  540.     $"03E0 0790 0F00 0E00 0E00 0600 0200 0100"
  541.     $"0080 0040 0060 0070 0070 00F0 09E0 07C0",
  542.     $"0260 0490 0900 0A00 0A00 0600 0200 0100"
  543.     $"0080 0040 0060 0050 0050 0090 0920 0640",
  544.     {8, 8}
  545. };
  546.  
  547. resource 'CURS' (129) {
  548.     $"0000 0038 007C 00FE 01C1 0180 0100 0100"
  549.     $"0080 0080 0180 8380 7F00 3E00 1C",
  550.     $"0000 0038 0044 00BE 0141 0180 0100 0100"
  551.     $"0080 0080 0180 8280 7D00 2200 1C",
  552.     {8, 8}
  553. };
  554.  
  555. resource 'CURS' (130) {
  556.     $"0000 0000 0000 0000 401C 803E 807F C087"
  557.     $"E103 FE01 7C01 3802",
  558.     $"0000 0000 0000 0000 401C 8022 8079 4084"
  559.     $"2102 9E01 4401 3802",
  560.     {8, 8}
  561. };
  562.  
  563. resource 'CURS' (131) {
  564.     $"0800 1000 3000 7000 7000 7000 3800 1CF0"
  565.     $"0F38 001C 000E 000E 000E 000C 0008 0010",
  566.     $"0800 1000 3000 5000 5000 5000 2800 14F0"
  567.     $"0F28 0014 000A 000A 000A 000C 0008 0010",
  568.     {8, 8}
  569. };
  570.  
  571. resource 'ICN#' (128, purgeable) {
  572.     {    /* array: 2 elements */
  573.         /* [1] */
  574.         $"0000 0000 1FFF FFE0 1000 0020 17FF FFA0"
  575.         $"1400 00A0 1400 07BC 1400 0208 1400 0110"
  576.         $"1400 00A0 1400 0040 1400 07FC 7F00 0404"
  577.         $"8080 05F4 BE80 0514 A280 0514 A280 05F4"
  578.         $"BE80 0404 8080 1FFF AE80 1001 8080 1401"
  579.         $"7F00 1FFF 0800 00A0 1400 00A0 2200 00A0"
  580.         $"4100 00A0 F780 00A0 1400 00A0 17FF FFA0"
  581.         $"1000 0020 1FFF FFE0",
  582.         /* [2] */
  583.         $"0000 0000 1FFF FFE0 1FFF FFE0 1FFF FFE0"
  584.         $"1C00 00E0 1C00 07FC 1C00 03F8 1C00 01F0"
  585.         $"1C00 00E0 1C00 0040 1C00 07FC 7F00 07FC"
  586.         $"FF80 07FC FF80 07FC FF80 07FC FF80 07FC"
  587.         $"FF80 07FC FF80 1FFF FF80 1FFF FF80 1FFF"
  588.         $"7F00 1FFF 0800 00E0 1C00 00E0 3E00 00E0"
  589.         $"7F00 00E0 FF80 00E0 1C00 00E0 1FFF FFE0"
  590.         $"1FFF FFE0 1FFF FFE0"
  591.     }
  592. };
  593.  
  594. resource 'icl8' (128) {
  595.     $"0000 0000 0000 0000 0000 0000 0000 0000"
  596.     $"0000 0000 0000 0000 0000 0000 0000 0000"
  597.     $"0000 00FF FFFF FFFF FFFF FFFF FFFF FFFF"
  598.     $"FFFF FFFF FFFF FFFF FFFF FF00 0000 0000"
  599.     $"0000 00FF F5F5 F5F5 F5F6 F6F6 F6F6 F6F6"
  600.     $"F6F6 F6F6 F62B 2B2B 2B2B FF00 0000 0000"
  601.     $"0000 00FF F5FF FFFF FFFF FFFF FFFF FFFF"
  602.     $"FFFF FFFF FFFF FFFF FF2B FF00 0000 0000"
  603.     $"0000 00FF F5FF 0000 0000 0000 0000 0000"
  604.     $"0000 0000 0000 0000 FF2B FF00 0000 0000"
  605.     $"0000 00FF F5FF 0000 0000 0000 0000 0000"
  606.     $"0000 0000 00FF FFFF FF2B FFFF FFFF 0000"
  607.     $"0000 00FF F5FF 0000 0000 0000 0000 0000"
  608.     $"0000 0000 0000 FFF8 2B2B 2BF8 FF00 0000"
  609.     $"0000 00FF F5FF 0000 0000 0000 0000 0000"
  610.     $"0000 0000 0000 00FF F8F8 F8FF 0000 0000"
  611.     $"0000 00FF F5FF 0000 0000 0000 0000 0000"
  612.     $"0000 0000 0000 0000 FFFB FF00 0000 0000"
  613.     $"0000 00FF F5FF 0000 0000 0000 0000 0000"
  614.     $"0000 0000 0000 0000 00FF 0000 0000 0000"
  615.     $"0000 00FF F5FF 0000 0000 0000 0000 0000"
  616.     $"0000 0000 00FF FFFF FFFF FFFF FFFF 0000"
  617.     $"00FF FFFF FFFF FFFF 0000 0000 0000 0000"
  618.     $"0000 0000 00FF 2B2B 2B2B 2B2B 2BFF 0000"
  619.     $"FF2B 2B2B 2B2B 2B2B FF00 0000 0000 0000"
  620.     $"0000 0000 00FF 2BFC FCFC FCFC 2BFF 0000"
  621.     $"FF2B FCFC FCFC FC2B FF00 0000 0000 0000"
  622.     $"0000 0000 00FF 2BFC 2A2A 2A00 2BFF 0000"
  623.     $"FF2B FC2A 2A2A 002B FF00 0000 0000 0000"
  624.     $"0000 0000 00FF 2BFC 2A2A 2A00 2BFF 0000"
  625.     $"FF2B FC2A 2A2A 002B FF00 0000 0000 0000"
  626.     $"0000 0000 00FF 2BFC 0000 0000 2BFF 0000"
  627.     $"FF2B FC00 0000 002B FF00 0000 0000 0000"
  628.     $"0000 0000 00FF 2B2B 2B2B 2B2B 2BFF 0000"
  629.     $"FF2B 2B2B 2BF7 F72B FF00 0000 0000 0000"
  630.     $"0000 00FF FFFF FFFF FFFF FFFF FFFF FFFF"
  631.     $"FF2B E32B FFFF FF2B FF00 0000 0000 0000"
  632.     $"0000 00FF 2B2B 2B2B 2B2B 2B2B 2B2B 2BFF"
  633.     $"FF2B 2B2B 2B2B 2B2B FF00 0000 0000 0000"
  634.     $"0000 00FF 2BD8 2B2B 2B2B 2B2B 2B2B 2BFF"
  635.     $"00FF FFFF FFFF FFFF 0000 0000 0000 0000"
  636.     $"0000 00FF FFFF FFFF FFFF FFFF FFFF FFFF"
  637.     $"0000 0000 FF00 0000 0000 0000 0000 0000"
  638.     $"0000 0000 0000 0000 FFF5 FF00 0000 0000"
  639.     $"0000 00FF FBFF 0000 0000 0000 0000 0000"
  640.     $"0000 0000 0000 0000 FFF5 FF00 0000 0000"
  641.     $"0000 FFF8 F8F8 FF00 0000 0000 0000 0000"
  642.     $"0000 0000 0000 0000 FFF5 FF00 0000 0000"
  643.     $"00FF F82B 2B2B F8FF 0000 0000 0000 0000"
  644.     $"0000 0000 0000 0000 FFF5 FF00 0000 0000"
  645.     $"FFFF FFFF 2BFF FFFF FF00 0000 0000 0000"
  646.     $"0000 0000 0000 0000 FFF5 FF00 0000 0000"
  647.     $"0000 00FF 2BFF 0000 0000 0000 0000 0000"
  648.     $"0000 0000 0000 0000 FFF5 FF00 0000 0000"
  649.     $"0000 00FF 2BFF FFFF FFFF FFFF FFFF FFFF"
  650.     $"FFFF FFFF FFFF FFFF FFF5 FF00 0000 0000"
  651.     $"0000 00FF 2B2B F6F6 F6F6 F6F6 F6F6 F6F6"
  652.     $"F6F6 F6F6 F5F5 F5F5 F5F5 FF00 0000 0000"
  653.     $"0000 00FF FFFF FFFF FFFF FFFF FFFF FFFF"
  654.     $"FFFF FFFF FFFF FFFF FFFF FF"
  655. };
  656.  
  657. resource 'ics#' (128) {
  658.     {    /* array: 2 elements */
  659.         /* [1] */
  660.         $"0000 3FFC 2004 200E 2004 201E F012 903F"
  661.         $"9021 F03F 2004 7004 2004 3FFC",
  662.         /* [2] */
  663.         $"0000 3FFC 2004 200E 2004 201E F01E F03F"
  664.         $"F03F F03F 2004 7004 2004 3FFC"
  665.     }
  666. };
  667.  
  668. resource 'ics4' (128) {
  669.     $"0000 0000 0000 0000 00FF FFFF FFFF FF00"
  670.     $"00F0 0000 0000 0F00 00F0 0000 0000 FFF0"
  671.     $"00F0 0000 0000 0F00 00F0 0000 000F FFF0"
  672.     $"FFFF 0000 000F 0DF0 F0DF 0000 00FF FFFF"
  673.     $"FCCF 0000 00FC CCCF FFFF 0000 00FF FFFF"
  674.     $"00F0 0000 0000 0F00 0FFF 0000 0000 0F00"
  675.     $"00F0 0000 0000 0F00 00FF FFFF FFFF FF"
  676. };
  677.  
  678. resource 'icl4' (128) {
  679.     $"0000 0000 0000 0000 0000 0000 0000 0000"
  680.     $"000F FFFF FFFF FFFF FFFF FFFF FFF0 0000"
  681.     $"000F CCCC CCCC CCCC CCCC CCCC DDF0 0000"
  682.     $"000F CFFF FFFF FFFF FFFF FFFF FDF0 0000"
  683.     $"000F CF00 0000 0000 0000 0000 FDF0 0000"
  684.     $"000F CF00 0000 0000 0000 0FFF FDFF FF00"
  685.     $"000F CF00 0000 0000 0000 00FE DDDE F000"
  686.     $"000F CF00 0000 0000 0000 000F EEEF 0000"
  687.     $"000F CF00 0000 0000 0000 0000 FEF0 0000"
  688.     $"000F CF00 0000 0000 0000 0000 0F00 0000"
  689.     $"000F CF00 0000 0000 0000 0FFF FFFF FF00"
  690.     $"0FFF FFFF 0000 0000 0000 0FCC CCCC CF00"
  691.     $"FCCC CCCC F000 0000 0000 0FCE EEEE CF00"
  692.     $"FCEE EEEC F000 0000 0000 0FCE CCC0 CF00"
  693.     $"FCEC CC0C F000 0000 0000 0FCE CCC0 CF00"
  694.     $"FCEC CC0C F000 0000 0000 0FCE 0000 CF00"
  695.     $"FCE0 000C F000 0000 0000 0FCC CCCC CF00"
  696.     $"FCCC CCCC F000 0000 000F FFFF FFFF FFFF"
  697.     $"FC8C FFFC F000 0000 000F CCCC CCCC CCCF"
  698.     $"FCCC CCCC F000 0000 000F C3CC CCCC CCCF"
  699.     $"0FFF FFFF 0000 0000 000F FFFF FFFF FFFF"
  700.     $"0000 F000 0000 0000 0000 0000 FCF0 0000"
  701.     $"000F EF00 0000 0000 0000 0000 FCF0 0000"
  702.     $"00FE EEF0 0000 0000 0000 0000 FCF0 0000"
  703.     $"0FED DDEF 0000 0000 0000 0000 FCF0 0000"
  704.     $"FFFF DFFF F000 0000 0000 0000 FCF0 0000"
  705.     $"000F DF00 0000 0000 0000 0000 FCF0 0000"
  706.     $"000F DFFF FFFF FFFF FFFF FFFF FCF0 0000"
  707.     $"000F DDCC CCCC CCCC CCCC CCCC CCF0 0000"
  708.     $"000F FFFF FFFF FFFF FFFF FFFF FFF0"
  709. };
  710.  
  711. resource 'ics8' (128) {
  712.     $"0000 0000 0000 0000 0000 0000 0000 0000"
  713.     $"0000 FFFF FFFF FFFF FFFF FFFF FFFF 0000"
  714.     $"0000 FF00 0000 0000 0000 0000 00FF 0000"
  715.     $"0000 FF00 0000 0000 0000 0000 FFFF FF00"
  716.     $"0000 FF00 0000 0000 0000 0000 00FF 0000"
  717.     $"0000 FF00 0000 0000 0000 00FF FFFF FF00"
  718.     $"FFFF FFFF 0000 0000 0000 00FF 2A2A FF00"
  719.     $"FF2A 2AFF 0000 0000 0000 FFFF FFFF FFFF"
  720.     $"FF2B 2BFF 0000 0000 0000 FF2B 2B2B 2BFF"
  721.     $"FFFF FFFF 0000 0000 0000 FFFF FFFF FFFF"
  722.     $"0000 FF00 0000 0000 0000 0000 00FF 0000"
  723.     $"00FF FFFF 0000 0000 0000 0000 00FF 0000"
  724.     $"0000 FF00 0000 0000 0000 0000 00FF 0000"
  725.     $"0000 FFFF FFFF FFFF FFFF FFFF FFFF"
  726. };
  727.  
  728. data 'hdlg' (-2999, "DITL 128") {
  729.     $"0002 0000 0000 0000 0000 0000 0001 0004"            /* ................ */
  730.     $"0100 0020 0003 0000 0000 0000 0000 0000"            /* ... ............ */
  731.     $"0000 F448 0001 FFFF 0000 FFFF 0000 FFFF"            /* ...H............ */
  732.     $"0000"                                               /* .. */
  733. };
  734.  
  735. data 'hdlg' (-2997, "DITL 130") {
  736.     $"0002 0000 0000 0000 0000 0000 0014 0004"            /* ................ */
  737.     $"0100 0020 0003 0000 0000 0000 0000 0000"            /* ... ............ */
  738.     $"0000 F448 0002 FFFF 0000 FFFF 0000 FFFF"            /* ...H............ */
  739.     $"0000 0020 0003 0000 0000 0000 0000 0000"            /* ... ............ */
  740.     $"0000 F448 0003 FFFF 0000 FFFF 0000 FFFF"            /* ...H............ */
  741.     $"0000 0020 0003 0000 0000 0000 0000 0000"            /* ... ............ */
  742.     $"0000 F448 0004 FFFF 0000 FFFF 0000 FFFF"            /* ...H............ */
  743.     $"0000 0020 0003 0000 0000 0000 0000 0000"            /* ... ............ */
  744.     $"0000 FFFF 0000 F448 0005 FFFF 0000 FFFF"            /* .......H........ */
  745.     $"0000 0020 0003 0000 0000 0000 0000 0000"            /* ... ............ */
  746.     $"0000 F448 0006 FFFF 0000 FFFF 0000 FFFF"            /* ...H............ */
  747.     $"0000 0020 0003 0000 0000 0000 0000 0000"            /* ... ............ */
  748.     $"0000 F448 0007 FFFF 0000 F448 0008 FFFF"            /* ...H.......H.... */
  749.     $"0000 0020 0003 0000 0000 0000 0000 0000"            /* ... ............ */
  750.     $"0000 F448 0009 FFFF 0000 FFFF 0000 FFFF"            /* ...H.Δ.......... */
  751.     $"0000 0020 0003 0000 0000 0000 0000 0000"            /* ... ............ */
  752.     $"0000 F448 000A FFFF 0000 F448 000B FFFF"            /* ...H.......H.... */
  753.     $"0000 0020 0003 0000 0000 0000 0000 0000"            /* ... ............ */
  754.     $"0000 F448 000C FFFF 0000 FFFF 0000 FFFF"            /* ...H............ */
  755.     $"0000 0020 0003 0000 0000 0000 0000 0000"            /* ... ............ */
  756.     $"0000 FFFF 0000 F448 000D FFFF 0000 FFFF"            /* .......H.¬...... */
  757.     $"0000 0020 0003 0000 0000 0000 0000 0000"            /* ... ............ */
  758.     $"0000 F448 000E FFFF 0000 FFFF 0000 FFFF"            /* ...H............ */
  759.     $"0000 0020 0003 0000 0000 0000 0000 0000"            /* ... ............ */
  760.     $"0000 FFFF 0000 F448 000F FFFF 0000 FFFF"            /* .......H........ */
  761.     $"0000 0020 0003 0000 0000 0000 0000 0000"            /* ... ............ */
  762.     $"0000 F448 0010 FFFF 0000 F448 0011 FFFF"            /* ...H.......H.... */
  763.     $"0000 0020 0003 0000 0000 0000 0000 0000"            /* ... ............ */
  764.     $"0000 F448 0012 FFFF 0000 F448 0013 FFFF"            /* ...H.......H.... */
  765.     $"0000 0020 0003 0000 0000 0000 0000 0000"            /* ... ............ */
  766.     $"0000 F448 0014 FFFF 0000 F448 0015 FFFF"            /* ...H.......H.... */
  767.     $"0000 0020 0003 0000 0000 0000 0000 0000"            /* ... ............ */
  768.     $"0000 F448 0016 FFFF 0000 FFFF 0000 FFFF"            /* ...H............ */
  769.     $"0000 0014 0007 0000 0000 003C 0000 0000"            /* ...........<.... */
  770.     $"0000 0000 0000 0020 0003 0000 0000 0000"            /* ....... ........ */
  771.     $"0000 0000 0000 F448 0017 FFFF 0000 F448"            /* .......H.......H */
  772.     $"0018 FFFF 0000 0020 0003 0000 0000 0000"            /* ....... ........ */
  773.     $"0000 0000 0000 FFFF 0000 F448 0019 FFFF"            /* ...........H.... */
  774.     $"0000 FFFF 0000 0020 0003 0000 0000 0000"            /* ....... ........ */
  775.     $"0000 0000 0000 F448 001A FFFF 0000 FFFF"            /* .......H........ */
  776.     $"0000 FFFF 0000"                                     /* ...... */
  777. };
  778.  
  779. data 'TEXT' (-3000) {
  780.     $"4D50 696E 670D 0D50 696E 6720 7574 696C"            /* MPing¬¬Ping util */
  781.     $"6974 7920 666F 7220 4170 706C 6520 4D61"            /* ity for Apple Ma */
  782.     $"6369 6E74 6F73 68AA 2E"                             /* cintosh™. */
  783. };
  784.  
  785. data 'hfdr' (-5696) {
  786.     $"0002 0000 0000 0000 0000 0001 0006 0006"            /* ................ */
  787.     $"F448"                                               /* .H */
  788. };
  789.  
  790.